package pe.com.drokasa.android.client.adapter;

import java.util.List;

import org.apache.commons.lang.StringUtils;

import pe.com.drokasa.android.client.R;
import pe.com.drokasa.android.client.model.Sucursal;
import android.app.Activity;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;

/**
 * Adaptador de Spinner personalizado que permite mostrar las sucursales 
 * y su stock con los datos necesarios en la forma customizada.
 * 
 * @author Synopsis S.A
 *
 */
public class SucursalAdapter extends BaseAdapter 
{
	private Activity activity;
	private List<Sucursal> sucursales;
	private static LayoutInflater inflater;
	
	/**
	 * @param activity
	 * @param sucursales
	 */
	public SucursalAdapter(Activity activity, List<Sucursal> sucursales)
	{
		this.activity = activity;
		this.sucursales = sucursales;
		inflater =(LayoutInflater) this.activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
	}
	
	/**
	 * @see android.widget.Adapter#getCount()
	 */
	@Override
	public int getCount() 
	{
		return sucursales.size();
	}

	/**
	 * @see android.widget.Adapter#getItem(int)
	 */
	@Override
	public Object getItem(int position) 
	{
		return sucursales.get(position);
	}

	/**
	 * @see android.widget.Adapter#getItemId(int)
	 */
	@Override
	public long getItemId(int position) 
	{
		return position;
	}

	/**
	 * @see android.widget.Adapter#getView(int, android.view.View, android.view.ViewGroup)
	 */
	@Override
	public View getView(int position, View convertView, ViewGroup parent) 
	{
		View view = convertView;
		
		if(convertView == null)
		{
			view = inflater.inflate(R.layout.custom_list_item_stock, null);
		}
		
		TextView nombreSucursal = (TextView) view.findViewById(R.id.resultado_nombre_sucursal);
		TextView stockSucursal = (TextView) view.findViewById(R.id.resultado_stock_sucursal);
		ImageView estadoSucursal = (ImageView) view.findViewById(R.id.resultado_estado_sucursal);
		
		Sucursal sucursal = sucursales.get(position);
		
		if(StringUtils.equals("-", sucursal.getSigno()) || StringUtils.equals("0", sucursal.getStock().toString()))
		{
			estadoSucursal.setImageDrawable(activity.getResources().getDrawable(R.drawable.arrow_down));
		}
		else
		{
			estadoSucursal.setImageDrawable(activity.getResources().getDrawable(R.drawable.arrow_up));
		}
		
		nombreSucursal.setText(sucursal.getNombre());
		stockSucursal.setText("Stock: " + sucursal.getSigno() + sucursal.getStock());
		
		return view;
	}
}